package sv.ues.fia.fragmentcontrol;

import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;
import sv.ues.fia.R;
import sv.ues.fia.bdcontrol.ControlBDHelper;
import sv.ues.fia.clases.SearchListItem;
import sv.ues.fia.clases.SearchListItemAdapter;
import sv.ues.fia.entity.Alumno;
import sv.ues.fia.entity.TrabajoGraduacion;
import sv.ues.fia.entity.Integrante;

public class IntegranteFragment extends Fragment {

	public int currentPage;
	/** DECLARAR AQUI LOS OBJETOS VIEW **/
	public ListView lvResultIntegrante;
	public List<Integrante> listResultIntegrante;
	public List<SearchListItem> listItemsResult;
	public SearchListItemAdapter adapter;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		/** Getting the arguments to the Bundle object */
		Bundle data = getArguments();

		/** Getting integer data of the key current_page from the bundle */
		currentPage = data.getInt("current_page", 0);
		listResultIntegrante = new ArrayList<Integrante>();
		listItemsResult = new ArrayList<SearchListItem>();

	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View v = null;

		/** PAGINA 1 **/
		if (currentPage == 1) {

			// Cargar LAYOUT de la Pagina 1
			v = inflater.inflate(R.layout.activity_integrante_insertar,
					container, false);

			final ControlBDHelper db = new ControlBDHelper(this.getActivity());

			// Listas para los espinner
			List<TrabajoGraduacion> listTG = new ArrayList<TrabajoGraduacion>();
			List<Alumno> listAlumno = new ArrayList<Alumno>();

			Button btnSave = (Button) v.findViewById(R.id.btnSaveIntegrante);
			final Spinner idAlumno = (Spinner) v.findViewById(R.id.spIdAlumno);
			final Spinner idTG = (Spinner) v.findViewById(R.id.spIdTG);
			final CheckBox cbxEstadoCargo = (CheckBox) v.findViewById(R.id.cbxCargo);

			/** CONSULTAR BD PARA LLENAR ESPINNERS **/
			db.abrir();
			listTG = db.consultarTG("", "");
			listAlumno = db.consultarAlumno("", "");
			db.cerrar();

			ArrayAdapter<TrabajoGraduacion> spinnerTGAdapter = new ArrayAdapter<TrabajoGraduacion>(
					getActivity(),
					android.R.layout.simple_spinner_dropdown_item, listTG);

			idTG.setAdapter(spinnerTGAdapter);

			ArrayAdapter<Alumno> spinnerAlumnodapter = new ArrayAdapter<Alumno>(
					getActivity(),
					android.R.layout.simple_spinner_dropdown_item, listAlumno);

			idAlumno.setAdapter(spinnerAlumnodapter);

			/** ACCION DEL BOTON INSERTAR NUEVO REGISTRO **/
			btnSave.setOnClickListener(new OnClickListener() {

				@Override
				public void onClick(View v) {

					TrabajoGraduacion selectedTG = (TrabajoGraduacion) idTG
							.getSelectedItem();

					Alumno selectedAlumno = (Alumno) idAlumno.getSelectedItem();

					Integrante newIntegrante = new Integrante();

					newIntegrante.setIdCarne(selectedAlumno.getCarne());
					newIntegrante.setIdTG(selectedTG.getIdTG());
					newIntegrante.setNotaFinal(0F);
					// newIntegrante.setCargo(edtCargo.getText().toString());
					newIntegrante.setCargo(cbxEstadoCargo.isChecked());
					// newIntegrante.setFechaReviFsion(formatedDate);
					// FALTA IMPLEMENTAR INSERTAR
					db.abrir();
					Toast.makeText(getActivity(), db.insertar(newIntegrante),
							Toast.LENGTH_LONG).show();
					db.cerrar();

				}
			});

			/** PAGINA 2 **/
		} else if (currentPage == 2) {

			final ControlBDHelper db = new ControlBDHelper(getActivity());

			// Cargar LAYOUT de la Pagina 2
			v = inflater.inflate(R.layout.activity_integrante_buscar,
					container, false);

			lvResultIntegrante = (ListView) v
					.findViewById(R.id.ListResultIntegrante);
			// id layou buscar <ListView
			// android:id="@+id/ListResultRevision"

			final EditText edtIdTG = (EditText) v.findViewById(R.id.edtIdTG);
			final EditText edtIdAlumno = (EditText) v
					.findViewById(R.id.edtIdCarne);

			ListView search = (ListView) v.findViewById(R.id.listOptionSearch);

			/** LISTENER DEL BOTON BUSCAR **/
			search.setOnItemClickListener(new OnItemClickListener() {

				@Override
				public void onItemClick(AdapterView<?> arg0, View arg1,
						int arg2, long arg3) {

					/** CONSULTAR LISTADO DE PERFILES SEGUN ID O NOMBRE **/
					db.abrir();
					listResultIntegrante = db.consultarIntegrante(edtIdTG
							.getText().toString(), edtIdAlumno.getText()
							.toString());
					db.cerrar();

					/** VACIAR RESULTADOS ANTES DE AGREGAR LOS NUEVOS **/
					listItemsResult.clear();

					/** LLENAR OTRA LISTA SOLO PARA AGREGARLO AL LISTVIEW **/
					for (Integrante x : listResultIntegrante) {

						SearchListItem item = new SearchListItem();

						// Se le asigna un TITULO
						item.setTitle(getActivity().getString(R.string.idTG)
								+ " " + String.valueOf(x.getIdTG()));

						// Se le asigna un SUBTITULO
						item.setSubTitle(getActivity().getString(
								R.string.idAlumnoForm)
								+ " " + x.getIdCarne());
						listItemsResult.add(item);
					}

					adapter.notifyDataSetChanged();

				}

			});

			/** SE CREA EL ADAPTER PERSONALIZADO PARA EL LISTVIEW **/
			adapter = new SearchListItemAdapter(this.getActivity(),
					listItemsResult);

			lvResultIntegrante.setAdapter(adapter);

			this.getActivity().registerForContextMenu(lvResultIntegrante);

		}
		return v;
	}

}
